Calendar repair assistant

ABSTRACT

Calendar repair may be provided. Calendar events, such as appointments and meetings, may be created and copied to a plurality of attendee calendars. A first copy of the event may be compared to a second copy of the event, and an event property of the second event may be updated to match a corresponding event property of the first event.

RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.Non-Provisional application Ser. No. 13/765,644, filed Feb. 12, 2013,which is a continuation of, and claims priority to U.S. Non-Provisionalapplication Ser. No. 12/647,934, filed Dec. 28, 2009, now U.S. Pat. No.8,375,081, each of which is hereby incorporated by reference in theirentirety.

Related U.S. patent application Ser. No. 12/647,944, filed Dec. 28,2009, entitled “Repairing Calendars with Standard Meeting Messages,”which is assigned to the assignee of the present application, andincorporated by reference.

Related U.S. patent application Ser. No. 12/647,962, filed Dec. 28,2009, entitled “Identifying Corrupted Data on Calendars with ClientIntent,” which is assigned to the assignee of the present application,and incorporated by reference.

BACKGROUND

Calendar repair is a process for verifying the accuracy of importantmeeting properties. In some situations, calendars contain appointments(meetings) that may be organized by one person, the Organizer. The samemeeting may be represented as multiple independent items stored in manydifferent calendars of all attendees of the meeting. The Organizer,attendees, and calendar applications may change these independent itemsduring the lifetime of the meeting, making them inconsistent betweenwhat the Organizer has on the calendar and what attendees may have ontheir calendar. This often causes problems because, if the meeting getsout-of sync between the organizer and attendees, it may cause attendeesto miss the meeting. The conventional strategy is to rely on attendeeusers to keep their own meeting appointments in-sync and up to date, butthese users may not always be able to identify discrepancies.

SUMMARY

Calendar repair may be provided. This Summary is provided to introduce aselection of concepts in a simplified form that are further describedbelow in the Detailed Description. This Summary is not intended toidentify key features or essential features of the claimed subjectmatter. Nor is this Summary intended to be used to limit the claimedsubject matter's scope.

Calendar repair may be provided. Calendar events, such as appointmentsand meetings, may be created and copied to a plurality of attendeecalendars. A first copy of the event may be compared to a second copy ofthe event, and an event property of the second event may be updated tomatch a corresponding event property of the first event.

Both the foregoing general description and the following detaileddescription provide examples and are explanatory only. Accordingly, theforegoing general description and the following detailed descriptionshould not be considered to be restrictive. Further, features orvariations may be provided in addition to those set forth herein. Forexample, embodiments may be directed to various feature combinations andsub-combinations described in the detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this disclosure, illustrate various embodiments of the presentinvention. In the drawings:

FIG. 1 is a block diagram of an operating environment;

FIG. 2 is a flow chart of a method for providing calendar repair;

FIGS. 3A-3B are block diagrams of user calendars;

FIG. 4 is a block diagram of an example event; and

FIG. 5 is a block diagram of a system including a computing device.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings.Wherever possible, the same reference numbers are used in the drawingsand the following description to refer to the same or similar elements.While embodiments of the invention may be described, modifications,adaptations, and other implementations are possible. For example,substitutions, additions, or modifications may be made to the elementsillustrated in the drawings, and the methods described herein may bemodified by substituting, reordering, or adding stages to the disclosedmethods. Accordingly, the following detailed description does not limitthe invention. Instead, the proper scope of the invention is defined bythe appended claims.

Calendar repair may be provided. Consistent with embodiments of thepresent invention, corresponding calendar items of organizers andattendees may be compared on a regular basis. A calendar server, such asMicrosoft® Exchange®, produced and sold by Microsoft® Corporation ofRedmond, Wash., may verify that important properties such as time, date,and/or attendee response status match as inconsistencies in suchproperties may result in an attendee missing the meeting. Theverification may be done by applying additional business logic to allowcertain flexibility in discrepancies and allow attendees to still haveenough flexibility to edit their meeting item. If the discrepancyviolates the business logic (e.g., the inconsistency of the propertieswill lead to a missed meeting), the server may perform the appropriatedcorrective actions, such as changing properties on an attendee'sappointment to match the organizer's version of the appointment.

FIG. 1 is a block diagram of an operating environment 100 comprising aserver 110, an organizer computer 120, and a plurality of attendeecomputers 130, 140, and 150. A user of organizer computer 120 mayprepare a meeting request that may be relayed to users of the pluralityof attendee computers 130, 140, and 150. The meeting request maycomprise a plurality of properties, such as those described in greaterdetail below with respect to FIG. 4. Each attendee user may accept orreject the meeting request and/or propose changes to at least one of themeeting properties, such as proposing a different time or location. Theorganizer user may view each attendee's response in a calendarapplication on organizer computer 120 and review, accept, and/or rejectany proposed changes by the attendees in the calendar application.Details regarding the event may be stored on server 110 and/orreplicated to organizer computer 120 and/or any and/or all of pluralityof attendee computers 130, 140, and 150.

FIG. 2 is a flow chart setting forth the general stages involved in amethod 200 consistent with an embodiment of the invention for providingcalendar repair. Method 200 may be implemented using a computing device500 as described in more detail below with respect to FIG. 5. Ways toimplement the stages of method 200 will be described in greater detailbelow. Method 200 may begin at starting block 205 and proceed to stage210 where computing device 500 may create an event. For example, a userof organizer computer 120 may create a meeting event and set eventproperties such as a start time, duration, location, and subject. Theuser may also send meeting invitations to a plurality of attendee usersand receive responses from those attendees.

After creating the event in stage 210, method 200 may advance to stage215 where computing device 500 may replicate the event properties toother calendars. For example, the event associated with the user oforganizer computer 120 may be copied to a shared calendar on server 110and/or a calendar application executing on at least one of plurality ofattendee computers 130, 140, and 150.

From stage 215, method 200 may advance to stage 220 where computingdevice 500 may determine whether a property associated with a first copyof the event differs from a corresponding property associated with asecond copy of the event. For example, the organizer's copy of the eventmay be compared to one and/or more of the attendees' copies of the eventto determine whether any of the properties differ. Consistent withembodiments of the invention, this comparison may be performed on aperiodic basis, such as once every 24 hours and/or during a low serverload time. For example, server 110 (and/or an administrator thereof) mayselect a time when few other server processes are executing to performevent comparisons. The comparison may also be performed manually, suchas by an administrator executing an application associated withperforming method 200 on server 110.

If no differences are found at stage 220, method 200 may end at stage245. Otherwise, method 200 may advance to stage 225 where computingdevice 500 may determine whether the differing information is critical.Critical information may comprise, for example, those event propertiesthat may cause the user associated with the out-of-sync information tomiss some and/or all of the meeting and/or to attempt to attend ameeting that has been canceled or rescheduled. For example, server 110may compare the organizer's copy of the event to an event associatedwith a user of attendee computer 130 and determine that the organizer'scopy has a start time of 9:00 while the attendee's copy has a start timeof 9:30. Since the attendee would not have the correct start time, theymay miss the meeting, and this difference may be considered critical.

Other critical properties may comprise, for example, an event'sexistence, an event's location, an event request acceptance, a duplicateproperty, a duplicate event, and a corruption. For example, the eventmay be missing entirely from the attendee's calendar and/or may havebeen corrupted and become unreadable by attendee computer 130, 140, or150. Similarly, duplicate properties and/or an out-of-sync acceptance ofthe meeting request (e.g., the attendee accepted the meeting request,but that acceptance may not have been relayed to the organizer) maycause a calendar application and/or other applications, such as aserver-based reminder service, that interact with the attendee user'scalendar to miss and/or misstime a reminder.

If, at stage 225, computing device 500 determines that the differingevent property is critical, method 200 may advance to stage 235 wherecomputing device 500 may update the event property. For example, server110 may copy the starting time from the organizer's copy of the event tothe attendee's copy of the event. The organizer's copy of the event maybe considered to be the master copy of the event properties, and mayoverride the properties of the attendees' events. For another example,server 110 may determine that an event is still present on an attendee'scalendar, but has been removed from an organizer's calendar. Server 110may delete the item from the attendee's calendar, and place a copy ofthe event in a deleted items log and/or folder for review and/orrecovery by the attendee.

Consistent with embodiments of the invention, other methods may be usedto resolve differences, such as keeping a master copy of the event onthe server, separate from the calendars of the attendees and/ororganizer, or using a most recently updated event property as thecorrect value. Computing device 500 may also compare the copies of theevent for the organizer and all of the attendees to determine whether amajority or plurality of the events agree on the out-of-sync property,and use the agreed on value to update the out-of-sync property.

After computing device 500 updates the event information in stage 235,method 200 may proceed to stage 240 where computing device 500 maynotify the user of the update. For example, server 110, organizercomputer 120, and/or attendee computers 130, 140, and 150 may display avisual notification on a screen, provide an audio alert, and/or send ane-mail or Short Message Service (SMS) message. Once computing device 500notifies the user in stage 235, method 200 may then end at stage 245.

If, at stage 225, computing device 500 determines that the differinginformation is not critical, method 200 may advance to stage 230 wherecomputing device 500 may determine whether the differing information isprivate. For example, the organizer and/or an attendee may addadditional information to their copy of the event, such as a note toremind them to raise a particular issue during a meeting. These notesmay differ and/or be absent among some or all of the other event copies,and method 200 may advance to stage 250 where computing device may copythe updated information to the other event copies. After updating theevent property, or if the property is marked as private, such as byusing a designated private property field and/or setting a private flagfor the property, method 200 may end at stage 245.

FIG. 3A comprises a block diagram of a first calendar 300 comprising afirst meeting 310, a lunch event 320, and a second meeting 330. Meeting310 and lunch meeting 320 may comprise events for which a userassociated with first calendar 300 is an organizer, while second meeting330 may comprise an event for which the user associated with firstcalendar 300 is an attendee.

FIG. 3B comprises a block diagram of a second calendar 350 comprising acopy of the first meeting 360 and a copy of the second meeting 370. Copyof first meeting 360 may comprise an event for which a user associatedwith second calendar 350 is an attendee, while copy of the secondmeeting 370 may comprise an event for which the user associated withsecond calendar 350 is an organizer.

Consistent with embodiments of the invention, method 200 may be invokedby server 110 to compare the events of first calendar 300 with theevents of second calendar 350. For example, first meeting 310 maycomprise a start time property of 9:30 AM while copy of the firstmeeting 360 may comprise a corresponding start time property of 11:30AM. Since first meeting 310 is associated with the organizer of theevent, and the start time property may be considered to be critical toattendance, the start time of 9:30 AM may be used to update copy of thefirst meeting 360 on second calendar 350. For a second example, method200 may determine that the user of second calendar 350 accepted ameeting request for lunch meeting 320 and may further determine that theevent is missing from second calendar 250. Server 110 may thereforecreate an event on second calendar 350 corresponding to lunch meeting320. For another example, server 110 may compare copy of the secondmeeting 370 with second meeting 330 and determine that the onlydifference is in the meeting title. This difference may be determined tonot be critical, and so the corresponding title properties may be leftout-of-sync between the two events. Consistent with embodiments of theinvention, the occurrence of the comparison and determination may berecorded in a log associated with the event. Server 110 may refer to thelog on a later comparison of the two events, and may consequently skipover the non-critical information rather than re-compare the propertiesknown to be out-of-sync. An administrator of server 110 may configure alist of event properties considered to be critical, and may update thislist at any time. If the list has changed, server 110 may be operativeto determine whether any previously determined out-of-sync propertiesare now considered to be critical, and may update those properties inaccordance with method 200.

FIG. 4 is a block diagram of an example event 400 comprising a pluralityof properties. Example event 400 may comprise a title 410, a subject420, an organizer 430, an attendee list 440, a start time 450, aduration 460, a reminder alarm 470, a location 480, and a notes field490. Start time 450, duration 460, and location 480, for example, may beconsidered critical properties to ensure an attendee does not miss therelevant event. Notes field 490, for example, may be designated as aprivate property by default.

Method 200 may produce an output file comprising information indicatingwhat updates, if any, may have been made along with identifyinginformation for the event being updated. An output file may be producedfor each user and/or each event, such as a file per user, per event, perperiodic update. Consistent with embodiments of the invention, a singleoutput file may be used for all logged updates. Each logged update maycomprise a plurality of properties, such as a category, an organizer, anattendee (and/or attendees), an indication if the item was repaired dueto an issue with the organizer's item or the attendee's item, a startand end time of the meeting, a subject of the meeting, a meeting type(single event, occurrence master, or occurrence instance), and/or arepair action.

If an event includes a group and/or a distribution list (e.g., a singleattendee entry associated with a plurality of users), server 110 may beoperative to expand the distribution list and compare the organizer'sevent to a copy of the event on each of the plurality of users'calendars. Consistent with embodiments of the invention, expansion ofthe group may be limited to a maximum number of users to avoidnegatively impacting server performance. This group expansion may beconfigured by an administrator of server 110.

An embodiment consistent with the invention may comprise a system forproviding calendar repair. The system may comprise a memory storage anda processing unit coupled to the memory storage. The processing unit maybe operative to create an event associated with a plurality ofattendees, copy the event to a plurality of calendars, compare a firstcopy of the event to a second copy of the event, and update an eventproperty of the second event to match a corresponding event property ofthe first event. The comparison may be performed on a periodic basis,such as every 24 hours, and/or may occur during a time of low serverload.

Another embodiment consistent with the invention may comprise a systemfor providing calendar repair. The system may comprise a memory storageand a processing unit coupled to the memory storage. The processing unitmay be operative to create an event associated with at least oneorganizer and a plurality of attendees, copy at least one propertyassociated with the event to a plurality of calendars, and determinewhether the at least one property associated with the event on at leastone of the plurality of calendars is the same as a correspondingproperty associated with the event associated with the organizer. If theproperties are out-of-sync, the processing device may be furtheroperative to update the at least one property to match the correspondingproperty associated with the organizer's event.

Yet another embodiment consistent with the invention may comprise asystem for providing calendar repair. The system may comprise a memorystorage and a processing unit coupled to the memory storage. Theprocessing unit may be operative to create an event on a calendarassociated with an organizer of the event, replicate informationassociated with the event to a plurality of attendee calendars,determine, on a periodic basis, whether the information associated withthe event on at least one of the attendees' calendars differs from theinformation associated the organizer's event, determine whether any suchdifference comprises a property likely to cause the attendee to miss themeeting. The processing unit may be further operative to update theevent on the attendee's calendar with the information from theorganizer's event and provide a notification to the attendee that theevent has been updated. Such notification may comprise, for example, atleast one of the following: sending an e-mail message to the user,sending an SMS message to the user, and displaying a notificationmessage on a display device associated with the user. The processingunit may be further operative to determine whether the differinginformation associated either the attendee's event or the organizer'sevent comprises a private property, and, if so, leave the informationout-of-sync between the attendee event and the organizer's event.

FIG. 5 is a block diagram of a system including computing device 500.Consistent with an embodiment of the invention, the aforementionedmemory storage and processing unit may be implemented in a computingdevice, such as computing device 500 of FIG. 5. Any suitable combinationof hardware, software, or firmware may be used to implement the memorystorage and processing unit. For example, the memory storage andprocessing unit may be implemented with computing device 500 or any ofother computing devices 518, in combination with computing device 500.The aforementioned system, device, and processors are examples and othersystems, devices, and processors may comprise the aforementioned memorystorage and processing unit, consistent with embodiments of theinvention. Furthermore, computing device 500 may comprise an operatingenvironment for system 100 as described above. System 100 may operate inother environments and is not limited to computing device 500.

With reference to FIG. 5, a system consistent with an embodiment of theinvention may include a computing device, such as computing device 500.In a basic configuration, computing device 500 may include at least oneprocessing unit 502 and a system memory 504. Depending on theconfiguration and type of computing device, system memory 504 maycomprise, but is not limited to, volatile (e.g. random access memory(RAM)), non-volatile (e.g. read-only memory (ROM)), flash memory, or anycombination. System memory 504 may include operating system 505, one ormore programming modules 506, and may include a calendar application507. Operating system 505, for example, may be suitable for controllingcomputing device 500's operation. In one embodiment, programming modules506 may include an event comparison module 520. Furthermore, embodimentsof the invention may be practiced in conjunction with a graphicslibrary, other operating systems, or any other application program andis not limited to any particular application or system. This basicconfiguration is illustrated in FIG. 5 by those components within adashed line 508.

Computing device 500 may have additional features or functionality. Forexample, computing device 500 may also include additional data storagedevices (removable and/or non-removable) such as, for example, magneticdisks, optical disks, or tape. Such additional storage is illustrated inFIG. 5 by a removable storage 509 and a non-removable storage 510.Computer storage media may include volatile and nonvolatile, removableand non-removable media implemented in any method or technology forstorage of information, such as computer readable instructions, datastructures, program modules, or other data. System memory 504, removablestorage 509, and non-removable storage 510 are all computer storagemedia examples (i.e. memory storage.) Computer storage media mayinclude, but is not limited to, RAM, ROM, electrically erasableread-only memory (EEPROM), flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to storeinformation and which can be accessed by computing device 500. Any suchcomputer storage media may be part of device 500. Computing device 500may also have input device(s) 512 such as a keyboard, a mouse, a pen, asound input device, a touch input device, etc. Output device(s) 514 suchas a display, speakers, a printer, etc. may also be included. Theaforementioned devices are examples and others may be used.

Computing device 500 may also contain a communication connection 516that may allow device 500 to communicate with other computing devices518, such as over a network in a distributed computing environment, forexample, an intranet or the Internet. Communication connection 516 isone example of communication media. Communication media may typically beembodied by computer readable instructions, data structures, programmodules, or other data in a modulated data signal, such as a carrierwave or other transport mechanism, and includes any information deliverymedia. The term “modulated data signal” may describe a signal that hasone or more characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media may include wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, radiofrequency (RF), infrared, and other wireless media. The term computerreadable media as used herein may include both storage media andcommunication media.

As stated above, a number of program modules and data files may bestored in system memory 504, including operating system 505. Whileexecuting on processing unit 502, programming modules 506 (e.g. eventcomparison module 520) may perform processes including, for example, oneor more of method 200's stages as described above. The aforementionedprocess is an example, and processing unit 502 may perform otherprocesses. Other programming modules that may be used in accordance withembodiments of the present invention may include electronic mail andcontacts applications, word processing applications, spreadsheetapplications, database applications, slide presentation applications,drawing or computer-aided application programs, etc.

Generally, consistent with embodiments of the invention, program modulesmay include routines, programs, components, data structures, and othertypes of structures that may perform particular tasks or that mayimplement particular abstract data types. Moreover, embodiments of theinvention may be practiced with other computer system configurations,including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like. Embodiments of theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Furthermore, embodiments of the invention may be practiced in anelectrical circuit comprising discrete electronic elements, packaged orintegrated electronic chips containing logic gates, a circuit utilizinga microprocessor, or on a single chip containing electronic elements ormicroprocessors. Embodiments of the invention may also be practicedusing other technologies capable of performing logical operations suchas, for example, AND, OR, and NOT, including but not limited tomechanical, optical, fluidic, and quantum technologies. In addition,embodiments of the invention may be practiced within a general purposecomputer or in any other circuits or systems.

Embodiments of the invention, for example, may be implemented as acomputer process (method), a computing system, or as an article ofmanufacture, such as a computer program product or computer readablemedia. The computer program product may be a computer storage mediareadable by a computer system and encoding a computer program ofinstructions for executing a computer process. The computer programproduct may also be a propagated signal on a carrier readable by acomputing system and encoding a computer program of instructions forexecuting a computer process. Accordingly, the present invention may beembodied in hardware and/or in software (including firmware, residentsoftware, micro-code, etc.). In other words, embodiments of the presentinvention may take the form of a computer program product on acomputer-usable or computer-readable storage medium havingcomputer-usable or computer-readable program code embodied in the mediumfor use by or in connection with an instruction execution system. Acomputer-usable or computer-readable medium may be any medium that cancontain, store, communicate, propagate, or transport the program for useby or in connection with the instruction execution system, apparatus, ordevice.

The computer-usable or computer-readable medium may be, for example butnot limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, device, or propagationmedium. More specific computer-readable medium examples (anon-exhaustive list), the computer-readable medium may include thefollowing: an electrical connection having one or more wires, a portablecomputer diskette, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, and a portable compact disc read-only memory(CD-ROM). Note that the computer-usable or computer-readable mediumcould even be paper or another suitable medium upon which the program isprinted, as the program can be electronically captured, via, forinstance, optical scanning of the paper or other medium, then compiled,interpreted, or otherwise processed in a suitable manner, if necessary,and then stored in a computer memory.

Embodiments of the present invention, for example, are described abovewith reference to block diagrams and/or operational illustrations ofmethods, systems, and computer program products according to embodimentsof the invention. The functions/acts noted in the blocks may occur outof the order as shown in any flowchart. For example, two blocks shown insuccession may in fact be executed substantially concurrently or theblocks may sometimes be executed in the reverse order, depending uponthe functionality/acts involved.

While certain embodiments of the invention have been described, otherembodiments may exist. Furthermore, although embodiments of the presentinvention have been described as being associated with data stored inmemory and other storage mediums, data can also be stored on or readfrom other types of computer-readable media, such as secondary storagedevices, like hard disks, floppy disks, or a CD-ROM, a carrier wave fromthe Internet, or other forms of RAM or ROM. Further, the disclosedmethods' stages may be modified in any manner, including by reorderingstages and/or inserting or deleting stages, without departing from theinvention.

All rights including copyrights in the code included herein are vestedin and the property of the Applicant. The Applicant retains and reservesall rights in the code included herein, and grants permission toreproduce the material only in connection with reproduction of thegranted patent and for no other purpose.

While the specification includes examples, the invention's scope isindicated by the following claims. Furthermore, while the specificationhas been described in language specific to structural features and/ormethodological acts, the claims are not limited to the features or actsdescribed above. Rather, the specific features and acts described aboveare disclosed as example for embodiments of the invention.

1.-20. (canceled)
 21. A method for providing electronic calendar repair,the method comprising: receiving a calendar event from an organizercomputer that is associated with an organizer, the calendar event storedon a first calendar associated with the organizer and including aplurality of event properties comprising details about the calendarevent; copying the calendar event to a second calendar associated withan attendee; after a period of time, performing a comparison of thecalendar event on the first calendar with the calendar event on thesecond calendar to identify one or more different event properties;determining that a first different event property is critical and asecond different event property is non-critical, wherein the firstdifferent event property is one of: a start time, a date, or a location;and updating the first different event property in the second calendarwith a corresponding event property from the first calendar, wherein thesecond different event property in the second calendar remainsout-of-sync from the first calendar.
 22. The method of claim 21, furthercomprising: storing a master copy of the calendar event on a serverseparate from the first calendar and the second calendar.
 23. The methodof claim 22, wherein updating the first different event property in thesecond calendar includes using the master copy of the calendar event.24. The method of claim 21, wherein the calendar event includesadditional information that one of the organizer or an attendeedesignated as private, and wherein the additional information is onlyviewable by the organizer or the attendee that designated the additionalinformation as private.
 25. The method of claim 24, wherein performingthe comparison of the calendar event on the first calendar with thecalendar event on the second calendar to identify one or more differentevent properties excludes the additional information that the organizeror the attendee designated as private.
 26. The method of claim 21,wherein the first different event property is an event property that isabsent from the second calendar.
 27. A system for providing electroniccalendar repair, the system comprising: a memory storingcomputer-executable instructions; and a processing unit coupled to thememory storage, wherein upon executing the instructions the processingunit is operative to: receive a calendar event from an organizercomputer that is associated with an organizer, the calendar event storedon a first calendar associated with the organizer and including aplurality of event properties comprising details about the calendarevent; copy the calendar event to a second calendar associated with anattendee; after a period of time, compare the calendar event on thefirst calendar with the calendar event on the second calendar toidentify one or more different event properties; determine that a firstdifferent event property is critical and a second different eventproperty is non-critical, wherein the first different event property isone of: a start time, a date, or a location; and update the firstdifferent event property in the second calendar with a correspondingevent property from the first calendar, wherein the second differentevent property in the second calendar remains out-of-sync from the firstcalendar.
 28. The system of claim 27, the instructions further causingthe processing unit to: store a master copy of the calendar event on aserver separate from the first calendar and the second calendar.
 29. Thesystem of claim 27, wherein updating the first different event propertyin the second calendar includes using the master copy of the calendarevent.
 30. The system of claim 27, wherein the calendar event includesadditional information that one of the organizer or an attendeedesignated as private, and wherein the additional information is onlyviewable by the organizer or the attendee that designated the additionalinformation as private.
 31. The system of claim 30, wherein performingthe comparison of the calendar event on the first calendar with thecalendar event on the second calendar to identify one or more differentevent properties excludes the additional information that the organizeror the attendee designated as private.
 32. The system of claim 27,wherein the first different event property is an event property that isabsent from the second calendar.
 33. The system of claim 27, wherein thefirst different event property is an event property that is corrupted inthe second calendar.
 34. A computer-readable storage device storing aset of instructions that when executed by a processing unit cause theprocessing unit to perform a method, comprising: receiving a calendarevent from an organizer computer that is associated with an organizer,the calendar event stored on a first calendar associated with theorganizer and including a plurality of event properties comprisingdetails about the calendar event; copying the calendar event to a secondcalendar associated with an attendee; after a period of time, performinga comparison of the calendar event on the first calendar with thecalendar event on the second calendar to identify one or more differentevent properties; determining that a first different event property iscritical and a second different event property is non-critical, whereinthe first different event property is one of: a start time, a date, or alocation; and updating the first different event property in the secondcalendar with a corresponding event property from the first calendar,wherein the second different event property in the second calendarremains out-of-sync from the first calendar.
 35. The computer-readablestorage device of claim 34, the set of instructions when executedcausing the processing unit to perform the method, further comprising:storing a master copy of the calendar event on a server separate fromthe first calendar and the second calendar.
 36. The computer-readablestorage device of claim 35, wherein updating the first different eventproperty in the second calendar includes using the master copy of thecalendar event.
 37. The computer-readable storage device of claim 34,wherein the calendar event includes additional information that one ofthe organizer or an attendee designated as private, and wherein theadditional information is only viewable by the organizer or the attendeethat designated the additional information as private.
 38. Thecomputer-readable storage device of claim 37, wherein performing thecomparison of the calendar event on the first calendar with the calendarevent on the second calendar to identify one or more different eventproperties excludes the additional information that the organizer or theattendee designated as private.
 39. The computer-readable storage deviceof claim 34, wherein the first different event property is an eventproperty that is absent from the second calendar.
 40. Thecomputer-readable storage device of claim 34, wherein the firstdifferent event property is an event property that is corrupted in thesecond calendar.